package com.zan.pattern.memento.white_box;

/**
 * @Author Zan
 * @Create 2024/4/27 20:55
 * @Description : TODO(请用一句话描述该类的功能)
 * @ClassName: Client
 */
public class Client {
    public static void main(String[] args) {
        System.out.println("--------------大战boss前--------------");
        // 创建游戏角色对象
        GameRole gameRole = new GameRole();
        // 初始化状态
        gameRole.initState();
        gameRole.stateDisplay();

        // 将该游戏角色内部状态进行备份
        // 创建管理者对象
        RoleStateCaretaker roleStateCaretaker = new RoleStateCaretaker();
        roleStateCaretaker.setRoleStateMemento(gameRole.saveState());

        System.out.println("--------------大战boss后--------------");
        // 损耗严重
        gameRole.fight();
        gameRole.stateDisplay();

        System.out.println("--------------恢复之前的状态--------------");
        // 回档
        gameRole.recoverState(roleStateCaretaker.getRoleStateMemento());
        gameRole.stateDisplay();
    }
}
